import Vue from 'vue'
import Router from 'vue-router'
import Layout from 'views/layout'

Vue.use(Router)

/**
* hidden: true                   当设置 true 的时候该路由不会再侧边栏出现 如401，login等页面(默认 false)
* alwaysShow: true               当设置 true 的时候永远会显示根菜单，不设置的情况下只有当子路由个数大于一个时才会显示根菜单
*                                当一个路由下面的 children 声明的路由大于1个时，自动会变成嵌套的模式。只有一个时会将那个子路由当做根路由
* redirect: 'no_redirect'           当设置 noredirect 的时候该路由不会在面包屑导航中出现
* name:'router-name'             设定路由的名字，一定要填写不然 使用 <keep-alive> 时会出现各种问题
* meta : {
  roles: ['admin','editor']      设置该路由进入的权限，支持多个权限叠加
  title: 'title'                 设置该路由在侧边栏和面包屑中展示的名字
  icon: 'svg-name'               设置该路由的图标
  noCache: true                  如果设置为true ,则不会被 <keep-alive> 缓存(默认 false)
}
**/

export const constantRouterMap = [
  {
    path: '/login',
    component: () => import('views/login'),
    hidden: true
  },
  {
    path: '/404',
    component: () => import('views/404'),
    hidden: true
  },
  {
    path: '/',
    component: Layout,
    redirect: '/dashboard',
    name: 'dashboard',
    meta: {
      title: '首页'
    },
    hidden: true,
    children: [
      {
        path: 'dashboard',
        component: () => import('views/dashboard'),
        meta: {
          title: '首页'
        }
      }
    ]
  }
]
export const asyncRouterMap = [
  {
    path: '/settings',
    component: Layout,
    name: 'settings',
    redirect: 'no_redirect',
    meta: {
      title: '系统设置',
      icon: 'settings',
      permissions: ['edit_settings']
    },
    children: [
      {
        path: 'roles',
        component: () => import('views/roles'),
        name: 'roles',
        meta: {
          title: '角色管理',
          icon: 'role',
          permissions: ['edit_settings']
        }
      },
      {
        path: 'users',
        component: () => import('views/users'),
        name: 'users',
        meta: {
          title: '用户管理',
          icon: 'users',
          permissions: ['manage_users']
        }
      }
    ]
  },
  { path: '*', redirect: '/404', hidden: true }
]

export default new Router({
  scrollBehavior: () => ({ y: 0 }),
  routes: constantRouterMap
})
